Exemple #1
0
 def __setattr__(self, key, value):
     if "java_fields" in self.__dict__ and key in self.__dict__["java_fields"]:
         if isinstance(value, JavaConfig):
             java_gateway.set_field(self.java_obj,key, value.java_obj)
         else:
             java_gateway.set_field(self.java_obj,key, value)
     else:
         self.__dict__[key] = value
Exemple #2
0
 def __setattr__(self, key, value):
     if "java_fields" in self.__dict__ and key in self.__dict__[
             "java_fields"]:
         if isinstance(value, JavaConfig):
             java_gateway.set_field(self.java_obj, key, value.java_obj)
         else:
             java_gateway.set_field(self.java_obj, key, value)
     else:
         self.__dict__[key] = value
    def testSetField(self):
        self.gateway = JavaGateway(auto_field=False)
        ex = self.gateway.getNewExample()

        set_field(ex, 'field10', 2334)
        self.assertEquals(get_field(ex, 'field10'), 2334)

        sb = self.gateway.jvm.java.lang.StringBuffer('Hello World!')
        set_field(ex, 'field21', sb)
        self.assertEquals(get_field(ex, 'field21').toString(), 'Hello World!')

        self.assertRaises(Exception, set_field, ex, 'field1', 123)
Exemple #4
0
    def testSetField(self):
        self.gateway = JavaGateway(auto_field=False)
        ex = self.gateway.getNewExample()

        set_field(ex, 'field10', 2334)
        self.assertEquals(get_field(ex, 'field10'), 2334)

        sb = self.gateway.jvm.java.lang.StringBuffer('Hello World!')
        set_field(ex, 'field21', sb)
        self.assertEquals(get_field(ex, 'field21').toString(), 'Hello World!')

        self.assertRaises(Exception, set_field, ex, 'field1', 123)
Exemple #5
0
    def testSetField(self):
        self.gateway = JavaGateway(gateway_parameters=GatewayParameters(auto_field=False))
        ex = self.gateway.getNewExample()

        set_field(ex, "field10", 2334)
        self.assertEquals(get_field(ex, "field10"), 2334)

        sb = self.gateway.jvm.java.lang.StringBuffer("Hello World!")
        set_field(ex, "field21", sb)
        self.assertEquals(get_field(ex, "field21").toString(), "Hello World!")

        self.assertRaises(Exception, set_field, ex, "field1", 123)
Exemple #6
0
    def testSetField(self):
        self.gateway = JavaGateway(gateway_parameters=GatewayParameters(
            auto_field=False))
        ex = self.gateway.getNewExample()

        set_field(ex, "field10", 2334)
        self.assertEquals(get_field(ex, "field10"), 2334)

        sb = self.gateway.jvm.java.lang.StringBuffer("Hello World!")
        set_field(ex, "field21", sb)
        self.assertEquals(get_field(ex, "field21").toString(), "Hello World!")

        self.assertRaises(Exception, set_field, ex, "field1", 123)
Exemple #7
0
    def choose_action_epsilon_greedy(self, array_state, epsilon, netSnap):
        ### With probability epsilon choose a random action, otherwise choose
        ### the action with highest Q value

        # unwrapping state
        state = list(array_state)
        state = np.asarray(state)

        # print("SEG:", self.segmentCounter, "PrevQuality:", state[0], ", 2PrevCh:", state[1], ", PrevCh:", state[2], ", QualityIndex", state[3], ", Buffer:", state[4])
        self.segmentCounter = self.segmentCounter + 1

        if epsilon > 1 or epsilon < 0:
            raise Exception('epsilon value between 0 and 1')

        # Change state shape and datatype to match network input
        if len(np.shape(state)) == 1:
            state = np.array(state).reshape(-1, len(state))
        # Evaluate output
        out_layer = self.session.run(self.out_layer,
                                     feed_dict={
                                         self.x: state,
                                         self.keep_prob: 1
                                     })[0]

        if np.random.rand() < (epsilon /
                               (self.n_classes - 1) * self.n_classes):
            # Generate random action
            action = np.random.randint(0, self.n_classes)
        else:
            # Choose the index of the max
            action = np.argmax(out_layer)

        # wrapping elements
        # print(out_layer)
        out_layer = out_layer.tolist()
        # print("Q", out_layer, "Action: ", action)

        double_class = gateway.jvm.double
        double_out_layer = gateway.new_array(double_class, self.n_classes)
        for i, val in enumerate(out_layer):
            double_out_layer[i] = val

        # setting netsnap object
        set_field(netSnap, 'action', action)
        set_field(netSnap, 'output', double_out_layer)

        return
Exemple #8
0
    def choose_action_softmax(self, array_state, temperature, netSnap):
        ### Forward step on network and apply softmax sample on output

        # unwrapping state
        state = list(array_state)
        state = np.asarray(state)

        # print("SEG:" + self.segmentCounter + "PrevQuality:" +state[0] + ", 2PrevCh:" + state[1] + ", PrevCh:" + state[2] + ", QualityIndex" + state[3] + ", Buffer:" + state[4])
        self.segmentCounter = self.segmentCounter + 1

        if temperature == 0:
            return self.choose_action_epsilon_greedy(state, temperature)

        # Change state shape and datatype to match network input
        if len(np.shape(state)) == 1:
            state = np.array(state).reshape(-1, len(state))

        # Evaluate softmax output
        out_layer, softmax_output = self.session.run(
            [self.out_layer, self.softmax_output],
            feed_dict={
                self.x: state,
                self.softmax_temperature: temperature,
                self.keep_prob: 1
            })

        softmax_output = softmax_output[0]
        out_layer = out_layer[0]

        # Sample the action using softmax output as mass pdf
        action = np.random.choice(np.arange(0, np.size(softmax_output)),
                                  p=softmax_output)

        # wrapping elements
        # print("Q"+ out_layer+"Action: " + action)
        out_layer = out_layer.tolist()
        double_class = gateway.jvm.double
        double_out_layer = gateway.new_array(double_class, self.n_classes)
        for i, val in enumerate(out_layer):
            double_out_layer[i] = val

        # setting netsnap object
        set_field(netSnap, 'action', action)
        set_field(netSnap, 'output', double_out_layer)

        return
Exemple #9
0
    def testSetField(self):
        self.gateway = JavaGateway(auto_field=False)
        ex = self.gateway.getNewExample()

        set_field(ex, "field10", 2334)
        self.assertEquals(get_field(ex, "field10"), 2334)

        sb = self.gateway.jvm.java.lang.StringBuffer("Hello World!")
        set_field(ex, "field21", sb)
        self.assertEquals(get_field(ex, "field21").toString(), "Hello World!")

        try:
            set_field(ex, "field1", 123)
            self.fail()
        except Exception:
            self.assertTrue(True)
Exemple #10
0
 def set_property(self, name, value):
     return java_gateway.set_field(self.java_obj,name, value)
Exemple #11
0
    def processing(self):
        try:
            # initialize when game start (first processing call?)
            if self.frameData.getEmptyFlag(
            ) or self.frameData.getRemainingTime() <= 0:
                self.isGameJustStarted = True
                del self.screens[:]
                del self.actions[:]
                del self.hps[:]
                del self.energy[:]
                del self.controllable[:]
                del self.rewards[:]
                self.frame_count = self.frames
                return

            # if self.cc.getSkillFlag():
            #     self.inputKey = self.cc.getSkillKey()
            #     return

            # update state
            displayBuffer = self.frameData.getDisplayByteBufferAsBytes(
                resolution[1], resolution[0], True)
            # rescaled to [-1, 1] and change data type np.float32
            screen = np.frombuffer(displayBuffer, dtype=np.int8).reshape(
                resolution[:2]) / 127.0
            screen = screen.astype(np.float32)

            # opponent always inverted
            if self.player:
                screen = -screen
            self.screens.append(screen)

            my_char = self.frameData.getMyCharacter(self.player)
            opp_char = self.frameData.getOpponentCharacter(self.player)
            self.hps.append((my_char.getHp(), opp_char.getHp()))
            my_energy = my_char.getEnergy()
            self.energy.append(my_energy / energy_scale)  # energy scaled

            # set action
            action_continue = self.actions and self.actions[-1] is not None \
                              and self.frame_count < self.frames
            # self.controllable.append(get_field(my_char, 'control'))
            self.controllable.append(not self.cc.getskillFlag())
            controllable = self.controllable[-1]

            if get_field(my_char, 'front'):
                actions = left_actions
            else:
                actions = right_actions

            # if last action is set and running
            if action_continue or not controllable:
                # keep current action
                self.actions.append(self.actions[-1])
            else:
                # take new action
                self.cc.skillCancel()
                stop_actions = [
                    a for a in range(len(actions))
                    if energy_cost[a] > my_energy
                ]
                action_idx = self.act(self._get_recent_state(),
                                      stop_actions=stop_actions)
                self.actions.append(action_idx)
                self.frames = len(actions[action_idx])
                logger.debug('action_idx: {}'.format(action_idx))
                self.frame_count = 0

            # set key
            if self.actions and self.actions[-1] is not None:
                current_action = actions[self.actions[-1]]
                if self.frame_count < len(current_action):
                    self.inputKey.empty()
                    action_keys = current_action[self.frame_count]
                    for key in action_keys:
                        if key in 'ABCDLRU':
                            set_field(self.inputKey, key, True)
            else:
                self.inputKey.empty()

            if getattr(self, '_on_train', False):
                # store new state action tuple and stream to monitor
                self.save_transaction(actions)
            self.frame_count += 1

        except Exception as exc:
            logger.error(traceback.format_exc())
Exemple #12
0
 def __setattr__(self, key, value):
     if "java_fields" in self.__dict__ and key in self.__dict__[
             "java_fields"]:
         java_gateway.set_field(self.java_obj, key, value)
     else:
         self.__dict__[key] = value
Exemple #13
0
# os.environ["JAVA_HOME"] = "/opt/miniconda3/envs/bet"  # for pyjnius
os.environ[
    "JAVA_HOME"] = "/usr/lib/jvm/java-8-oracle"  # not working with pyjnius
os.environ['CLASSPATH'] = project_path + jar_path + jar_file

# %%

from py4j.java_gateway import JavaGateway, GatewayParameters, set_field

import sys
from datetime import datetime

gtw = JavaGateway.launch_gateway(
    classpath=project_path + jar_path + jar_file,
    redirect_stdout=sys.stdout,
    redirect_stderr=sys.stderr,
    die_on_exit=True)  # auto_field=True changed within the library itself!
# gateway = JavaGateway(gateway_parameters=GatewayParameters(auto_field=True))

settings = gtw.jvm.settings.Settings()

set_field(settings, "neuralNetsPostProcessing", True)
set_field(settings, "pruneNetworks", True)

neuralogic = gtw.jvm

main = neuralogic.Main
print(main.testConnection(str(datetime.now())))
main.initLogging()
Exemple #14
0
 def set_property(self, name, value):
     return java_gateway.set_field(self.java_obj, name, value)
Exemple #15
0
"""
This script update rainfall data records in HEC-DSS database using ListSelection class.

Firstly, we create Main Window. Secondly, we open the DSS file Project.dss, and we read data from the specified record. Then, a new matrix
with actual rainfall data is generated. With set_field function, the data is updated. Finally, save function saves the data container in 
the opened DSS file
"""

# modules importation 
from py4j.java_gateway import JavaGateway, get_field, set_field
gateway = JavaGateway()
jhec = gateway.jvm.hec

# main script
mainWindow = jhec.dssgui.ListSelection.createMainWindow()
mainWindow.openDSSFile("C:/Project.dss")
record=mainWindow.read("//GAGE 1/PRECIP-INC/01JAN2000/30MIN/GAGE/")
temp=get_field(record,"values")
newTemp = [newTemp.rstrip('\n') for newTemp in open('C:/rainfall.txt')]
newTemp=[float(string) for string in newTemp]

# new matrix creation 
for i in range(len(newTemp)):
 temp[i]=newTemp[i]
set_field(record,"values",temp)
mainWindow.save(record)